<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>继承</title>
  <style>
    * {
      margin: 0;
      padding: 0; 
      font-size: 14px;
      box-sizing: border-box
    }
    body {    
      padding: 20px;
    }
    div {
      line-height: 40px
    }
    h1 {
      font-size: 20px
    }
  </style> 
</head>
<body>
  <h1>继承</h1>
  <div>所有引用类型数据都继承Object</div>
  <div>所有的函数引用类型都继承了Funtion</div>
  <div>
    javascript中通过原型链实现继承，主要包括构造函数，原型，实例之间实现，继承是为了实现一个引用类型对象继承另一个引用类型的属性和方法
  </div>
  <div>
    原型链继承：继承主要是通过显示原型属性prototype 和 隐式原型属性__proto__ 来形成原型链和继承的
  </div>
  <div>借用构造函数继承：  借用构造函数也能很方便的继承父类的实例方法和属性，但是不能继承父类的原型方法和属性， 不能形成原型链</div>
  <div>组合继承：组合继承是结合原型链和借用构造函数的有点形成的一种继承方式</div>
</body>
<script>
  function Parent(money) {
    this.colors = ['red', 'blue', 'yellow']
    this.money = money;
  }
  Parent.prototype.getMoney = function() {
    return this.money;
  }
  function Children() {
    Parent.call(this, 2000);
  }
  Children.prototype = new Parent(3000)
  var children = new Children();
  console.dir(children)
</script>
</html>